package com.hetao.jmb2c.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
@Data
@TableName("tb_admin")
public class Admin implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 管理员ID
     * 数据库列：id (主键，自增)
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户名
     * 数据库列：admin_name
     * 要求：
     * - 唯一
     * - 长度4-20字符
     * - 只能包含字母、数字和下划线
     */
    private String adminName;

    /**
     * 密码
     * 数据库列：password
     * 安全要求：
     * - 必须加密存储(建议BCrypt)
     * - 不明文存储
     * - 不返回给前端
     */
    private String password;

    /**
     * 角色ID
     * 数据库列：role_id
     * 说明：
     * - 关联tb_admin_role表
     * - 0表示未分配角色
     */
    private Integer roleId;

    /**
     * 创建时间
     * 数据库列：create_time
     * 格式：yyyy-MM-dd HH:mm:ss
     */
    private Date createTime;

    /**
     * 电子邮箱
     * 数据库列：email
     * 要求：
     * - 符合邮箱格式
     * - 可用于找回密码
     */
    private String email;

    /**
     * 最后登录IP
     * 数据库列：last_ip
     * 格式：IPv4或IPv6
     */
    private String lastIp;

    /**
     * 最后登录时间
     * 数据库列：last_time
     * 格式：yyyy-MM-dd HH:mm:ss
     */
    private Date lastTime;

    /**
     * 删除状态
     * 数据库列：is_del
     * 取值：
     * - true: 已删除
     * - false: 正常
     */
    private Boolean isDel;

    /**
     * 头像URL
     * 数据库列：avatar
     * 格式：
     * - 完整URL
     * - 建议使用OSS存储
     */
    private String avatar;
}
